package org.qianji.goosql.dql.clause;

import org.qianji.goosql.Fragment;
import org.qianji.goosql.cond.Condition;

/**
 * Where子句。
 * 
 * @author gmz
 * 
 */
public interface Where extends Fragment {

	/**
	 * 是否设置查询条件。
	 * 
	 * @return {@link java.lang.Boolean boolean} true-有查询条件，false-无查询条件
	 */
	public boolean hasConds();

	/**
	 * 获取Where条件。
	 * 
	 * @return {@link Condition} 查询条件
	 */
	public Condition getCond();

	/**
	 * 设置查询条件。
	 * 
	 * @param cond
	 *            {@link Condition} 查询条件
	 * @return {@link Where} Where子句
	 */
	public Where setCond(Condition cond);

	/**
	 * 添加与条件，新条件与原有条件以AND连接。
	 * 
	 * @param cond
	 *            {@link Condition} 查询条件
	 * @return {@link Where} Where子句
	 */
	public Where and(Condition cond);

	/**
	 * 添加或条件，新条件与原有条件以OR连接。
	 * 
	 * @param cond
	 *            {@link Condition} 查询条件
	 * @return {@link Where} Where子句
	 */
	public Where or(Condition cond);

}
